package com.api.devices.domain.vo;

import com.alibaba.fastjson2.JSONObject;
import com.api.common.config.ApiConfig;
import com.api.common.core.domain.BaseEntity;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnore;
import lombok.Getter;
import lombok.Setter;
import org.apache.commons.lang3.ObjectUtils;

import java.util.Date;

/**
 * 工控机
 */
@Getter
@Setter
public class IpcVo extends BaseEntity {

//    /**
//     * 工控机ID
//     */
//    private Long ipcId;
    /**
     * 工控机名称
     */
    private JSONObject ipcNameLocales;

    private String ipcName;
    @JsonIgnore
    private String strIpcName;
    /**
     * 工控机编号
     */
    private String ipcCode;
    /**
     * 工控机IP地址
     */
    private String ip;
//    /**
//     * 工控机存放位置
//     */
//    private String position;
    /**
     * 工控机登录用户
     */
    private String user;
    /**
     * 工控机登录密码
     */
    private String pwd;
    /**
     * 工控机描述
     */
    private String remark;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createTime;
    /**
     * 创建人
     */
    private String createBy;
    /**
     * 更新时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date updateTime;
    /**
     * 更新人
     */
    private String updateBy;

    @JsonIgnore
    private String resourceTableName;

//    @JsonIgnore
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String startTime;
//    @JsonIgnore
//    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String endTime;

    /**
     * 选择第N页
     */
//    @JsonIgnore
    private int pageNum;
    /**
     * 每页显示量
     */
//    @JsonIgnore
    private int pageSize;

//    @JsonIgnore
    private String appLang;
    public void setIpcNameLocales(JSONObject ipcNameLocales){
        this.ipcNameLocales = ipcNameLocales;
        if(ObjectUtils.isNotEmpty(ipcNameLocales))
            this.strIpcName = ipcNameLocales.toString();
    }

    public void setIpcCode(String ipcCode) {
        this.ipcCode = ipcCode;
//        this.resourceTableName = ApiConfig.getTenant() + "_" + ipcCode + "_resource";
        this.resourceTableName = ipcCode + "_resource";
    }

    public void initControl(String username, String appLang) {
        this.appLang = appLang;
        this.updateBy = username;
        this.createBy = username;
    }

    public static String getResourceTableName(String ipcCode){
//        return ApiConfig.getTenant() + "_" + ipcCode + "_resource";
        return ipcCode + "_resource";
    }
}
